新しいものを表示

つまり、csvで数値を保存する時にも " " で囲うの必須で(数値なら要らないと今まで思ってた><;)、
csvから数値を読む場合は、SIに従うならば(?)、『 . 』も『 , 』もどちらも小数点であるとみなさなければならないっぽい><

ていうかベトナムがというかフランスの影響が強いエリアがだいたいフランス式つまり『 , 』方式で結構広いエリアで、つまりダメじゃん><

小数点 - Wikipedia ja.wikipedia.org/wiki/%E5%B0%8
"国際単位系(SI)では小数点について、イギリス式でもフランス式でも、どちらでもよいと規定している。"

ISOにあわせればよくね?><
って思ったんだけど、ISO 80000-1も前身のISO 31-0も本文の小数点が『 , 』になってる感・・・・><;

orange さんがブースト

機械相手にロケール依存書式を使うなもそうだけど、じゃあロケール非依存の書式とは?という気もするし、ちゃんと明記しておくのは大事ね…とか思うやつ(ロケール非依存の諸々、特に書かれていなければCロケールのことを指しそうな気はするが)

orange さんがブースト

TOMLの数値型、 toml.io/en/v1.0.0#float に小数点の文字が明示されてなくて大丈夫かなと思ったけど、ABNF文法にはちゃんと書いてあった

ていうかオレンジはCSV使いそうな場面は基本的にTSV使ってる><

TSV(タブ区切り形式)が大好きなのでその他に入れた><

orange さんがブースト

推しのデータ形式といえば...
(※複數囘答🉑

paizaioにベトナムロケールでカンマ怖いのデモ書いた><;
paiza.io/projects/1gHTk7HzwOwq

知らんかった「カスタム数値形式ならだいじょうぶだよね><」と思い込んでたし、つまり、オレンジがC# で今まで書いてきたやつだいたいベトナム語版Windowsではちゃんと動かない?><;

本題のベトナムロケールでも試した><;
vi-VN
0123,456
ちゃんと , になっちゃった!!!><;
C# で数値を文字列にしたいときは必ず明示的にCultureInfo.InvariantCultureをつけないと危険!!!><;
(当たり前だけど、つければちゃんとベトナムロケールでも0123.456になった><)

スレッドを表示

CultureInfo culture = CultureInfo.GetCultureInfo("da-DK");
CultureInfo.DefaultThreadCurrentCulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;
ってして、
double d = 123.456;
Console.WriteLine(Thread.CurrentThread.CurrentUICulture);
Console.WriteLine(d.ToString("0000.000"));
ってしたら
da-DK
0123,456
って出た!><;

ていうか、.NETなアプリ作るときにアプリ全体にシステムの情報無視して特定のロケール情報上書きするって出来ないのかな?><
Application.CurrentCultureをApplication.Runの直前で書き換えてもメインスレッドのCurrentCultureがja-JPのまま・・・><

docs.microsoft.com/ja-jp/dotne
' "." カスタム指定子
"." カスタム書式指定子は、ローカライズされた小数点を結果の文字列に挿入します。'

・・・・・・><;

よく考えてみると、このパターンだと区切り文字列とかもアレでダメパターン?><;

スレッドを表示

ていうか、機械的に読む可能性がある数値の文字列としての出力には、ちゃんと1文字ずつ指定する方の書式指定使わないとダメじゃん感>< 日時とかもそう><

古いものを表示
:realtek:

思考の /dev/null