2024/04/20 09:42
tienoti
"2023-12-31 23:59:59.999555 これは年にすると 2023 年だし、日付にすると2023-12-31だ。 しかしこれをミリ秒で四捨五入すると、 2024-01-01 00:00:00.000 になって、年も日付も変わってしまう。"
2024/04/20 10:07
meddle2002
気付き
2024/04/20 10:15
twainy
どこかで教わった覚えもないけど常識だと思ってた。デジタル時計の表示がそもそも切り捨てだしなあ
2024/04/20 10:35
kuuneruasobooo
“スタンプ”
2024/04/20 10:53
mohno
「ナノ秒からミリ秒への変換で四捨五入」←そもそも浮動小数型?「時刻を扱うときは保存精度未満は切り捨てるべきというのが常識になっていないなー」←GetMonth、GetDayみたいな(アブナイ)ヤツは見たことある。
2024/04/20 10:58
natu3kan
四捨五入って必要性ないとノイズにはなりそうだよね。切り捨てより余分な処理も増えるし。
2024/04/20 11:22
t-tanaka
言われてみればそのとおり。無意識にはやっていたが,このように言語化したことはなかった。
2024/04/20 11:30
NetPenguin
たしかに。普段意識していないけど、たしかにそうだな。
2024/04/20 11:44
houyhnhm
じゃあ時間間隔になるとというと案外難しい気が。
2024/04/20 11:47
Knoa
少しわき道にそれるけど、YouTubeとかが過去の動画に「1年前」とか付けて、ほぼ2年前まで含ませる解像度の悪さが大嫌い。
2024/04/20 11:52
mirakukira
ミリ秒どころか秒を切り捨てます!同時に呼ばれると片方は上書きされます!
2024/04/20 11:53
yarumato
“四捨五入はダメ。2023-10-01を2024年に丸める人はいない。ミリ秒は四捨五入とかのルールはよくない。一貫しないといけない。日付で切り捨てを採用している限り、日付未満も切り捨てを採用する以外無いのだ。”
2024/04/20 12:05
restroom
確かにタイムスタンプではそうですね。時間(時刻ではなく)だったらいいような気もしますが、どうなんでしょうか。
2024/04/20 12:27
peketamin
“たとえば次の時刻を考えてみよう。 2023-12-31 23:59:59.999555” なるほど!
2024/04/20 12:28
daishi_n
当たり前のことだけど、言われてみないとわからないヤツだな
2024/04/20 12:28
habarhaba
ITエンジニアの裾野が広がって、こういう常識的な感覚が分からない人に遭遇する場面が増えた
2024/04/20 12:28
kazkun
なんとなく当たり前だったけど、やっぱり言語化ってだいじだよね。ドキュメント書かなきゃ。
2024/04/20 12:31
Wafer
それはそう
2024/04/20 12:43
aktkro
てかタイムスタンプ四捨五入する人なんているんだ。
2024/04/20 13:07
roshi
キャンペーン終了時刻を”23時59分59秒”じゃなく”24時”って書くのは許して欲しい。
2024/04/20 13:35
Falky
そりゃそうなんだけど、普段言語化しないよね。仕様を書く時は明示しないと事故るんだよなあ//「期間」の定義も普段意識しないが難しい。偉そうなブコメしてるキミ、民法138〜143条を正しく理解している自信はあるか?
2024/04/20 14:01
suikyojin
確かに、日付けは四捨五入しない。コンピューターと関係無い場合に、切り上げが皆無とは言わないが、測定精度の観点で説明できる。
2024/04/20 14:05
xll
“とあるプロジェクトでナノ秒からミリ秒への変換で四捨五入してきた人がいて、時刻を扱うときは保存精度未満は切り捨てるべきというのが常識になっていないなーと思ったので。”
2024/04/20 14:35
sudo_vi
たしかに
2024/04/20 14:41
fhvbwx
もっともではあるがexcelやGoogleスプレッドシートはどういう処理になってるんだろうか?
2024/04/20 14:51
dsl
言われてみれば。ただ日付扱う時は大概ライブラリ使うので自力で丸めるシチュエーションはあまりなさそう
2024/04/20 15:19
hase0510
タイムスタンプの話をしているのであって時刻情報一般の話をしているわけではないことには注意しましょう。マジで。
2024/04/20 15:20
last10min
でも"世紀"だけは切り上げなんだよなあ。世界史とかを普通に分かりづらくする要因だった。
2024/04/20 15:27
Kil
タイムスタンプの精度を落とすことを「切り捨て」「四捨五入」と算術的に考えることがそもそもないな。精度落とす=特定の桁のところまで表示する、というイメージでしかない。
2024/04/20 15:55
itotto
データの意味だとかを何も考えずに四捨五入する人はわりとよくいるのでこれはよく分かる
2024/04/20 16:12
paradoxparanoic
未来行っちゃうもんな
2024/04/20 16:16
tettekete37564
時と場合によるだろ。あとで解析に使うログなら切り捨で良いけど、ユーザへの表示としては不適切なケース発生するだろ。msオーダーでは大丈夫だろうけどmやhになるとおかしいとユーザに指摘されるぞ
2024/04/20 17:00
devrabi
DBでの日付型のミリ秒の精度が、APIのjsonの値との間で不都合があり、別に処理精度が必要でないものでは、日付型のミリ秒は3桁明示で定義するようにしたりはします
2024/04/20 17:14
hgaragght
こういう話面白くて好き。
2024/04/20 17:18
nori__3
言われてみれば。てか四捨五入する事あるんかな。そのまま使う、フォーマット変える、datetime型にしてから一部取り出すとかで四捨五入って発想自体がなかった
2024/04/20 17:24
kazyee
PCとかの時計はハード的な誤差は進みには厳しいとは聞いたことはある(NTPやGPSか何かで補正されたとき、未来のタイムスタンプが残るのを嫌うため)
2024/04/20 17:43
polamjag
PostgreSQLでタイムスタンプ系の型で精度落とすキャストの時の挙動が四捨五入でめちゃくちゃビビった記憶 / 切り捨ての方が四捨五入前の値が取りうる範囲が明瞭なのが嬉しいと思う
2024/04/20 18:07
tekitou-manga
全然関係ないけど、blog.hatena.ne.jp
2024/04/20 18:10
a-know
たしかにね
2024/04/20 18:14
baronhorse
出勤時刻は切り上げで退勤時刻は切り下げみたいな要件が時々あるわけよ
2024/04/20 18:41
t2y-1979
みたことも聞いたこともない。シンプルに四捨五入する開発者の意図を聞いてみたい
2024/04/20 19:00
puhu208n
これは切り捨てるのが正しいから切り捨てるのではなく、古来から余計な桁数を除算やビットマスクで処理する方が簡単だったからだろう。四捨五入の方が命令数が少なく済むならそっちが定着していたはず。
2024/04/20 19:21
spark7
大きい日付時刻を丸めることはないだろうけど、なるほどナノ秒→ミリ秒のときだとそんな事してしまいそうな気はする。
2024/04/20 19:38
ryo_ryoo_ryooo
ProtobufのTimestampをjsのDateに変換するときに勝手に丸められるから切り捨てたことある
2024/04/20 19:59
shingo-sasaki-0529
単純に四捨五入ってめちゃくちゃ難しいからよっぽどの理由がない限りは切り上げるか切り捨てるかの二択よね
2024/04/20 20:14
MysticDoll
言われてみると確かにそう
2024/04/20 20:14
ch1248
これ重要よね。
2024/04/20 20:38
syamatsumi
なるほどなー。言われて見りゃ確かにって印象。
2024/04/20 21:01
onesplat
意味はわかるし同意もするんだけど、「で、それの何が問題なの?」に対する説得力が乏しい
2024/04/20 21:38
cartman0
〇〇時前くらいの表現だと切り上げたほうがええな
2024/04/20 21:53
nornsaffectio
ビジネスの現場では日付が繰り上がって翌日や翌年度になってしまうと締切等の関係で命取りになることがあるのでな。
2024/04/20 21:58
kompiro
世紀を切り上げと表現するのも変だよ0-99年を1番目の世紀だから1世紀としてるだけでは? 算術的には切り上げといえばそうなのかもしれないが
2024/04/20 22:11
kazukan
無意識にYYYY年MM月DD日って書いた設計書をもとに実装して、2024年04月19日ってなってしまって、ゼロいらんわーってなる症状と似てる(似てる?)
2024/04/20 22:13
kirine
理由がわからない人向けに説明すると後でログを集計したり読んだりする時に時間が切り上げされてると◯日のログ、◯時のログ、という枠からはみ出ちゃって正常に分析出来なくなるからです
2024/04/20 22:31
nyakapoko
オレは午後になったらもう明日だと思ってるよ
2024/04/20 22:38
chintaro3
 なるほどー。いわれてみればごもっとも。
2024/04/20 22:43
ardarim
Excel君に言ってやって
2024/04/20 23:06
prograti
昔インターネットカフェでバイトしていた時入店時間は切り上げでしたね
2024/04/20 23:35
Gaju
関係ないけど外人って相対時刻表示好きだよな
2024/04/21 00:36
gurinekosan
タイムスタンプでは無いけれど、浮動小数点数が使われていると、丸め誤差が発生する。Excel等で計算をさせる時、同じ式でも順番を変えると結果が違ってくる的な古典芸能があって、利息のようなものを扱う時は文字数
2024/04/21 01:56
deep_one
用途による気がする。
2024/04/21 02:19
napsucks
確かに。意識したこともなかった。時刻は四捨五入しない。
2024/04/21 03:53
nezuku
四捨五入など未来に進めてしまうことのある動作だと想定外の日時と化してしまうかもしれないよ? という指摘
2024/04/21 06:18
harumomo2006
バグはともかく時刻を意識的に四捨五入するプログラマーは見たことないかも。このあたりは設計書書くときに明確にするのでみんな言語化してると思ってた
2024/04/21 07:13
nilab
「ナノ秒からミリ秒への変換で四捨五入してきた人がいて」「時刻を扱うときは保存精度未満は切り捨てるべき」「2023-10-01 を、何年か表示する時に、2024年に丸める人はいないだろう」
2024/04/22 13:06
fukken
四捨五入でも切り捨てでも大差ない場合、普通は切り捨てを選ぶよな。実装も楽だし。