.net
の文字列にダブルを変換するときの科学表記法を回避する。ネット開発者は、しばしば double
値を文字列に変換する際に課題に遭遇し、特に科学表記形式を避けます。 この記事では、堅牢で効率的なソリューションを紹介します。
10進精度の維持
非常に多数または非常に少ない数を含む、幅広い double
値を正確に表すために、十分な小数の精度を維持することが重要です。 double
値は-308から308の範囲の指数を持つことができるため、小数点を最大15か所にシフトする可能性があるため、かなりの数の小数点に対応する必要があります。
カスタム番号形式文字列
次のカスタム形式の文字列は、最大339小数の場所を保存する目的のフォーマットを実現します:
doubleFixedPoint = "0." new string('#', 339);
効率と使いやすさ
このアプローチは、フォーマットと文字列の操作が最適化された非管理CLRコードによって処理されるため、非常に効率的です。 ユーザビリティを強化するには、形式の文字列を定数として定義することを検討してください:
public static class FormatStrings
{
public const string DoubleFixedPoint = "0.###################################################################################################################################################################################################################################################################################################################################################";
}
重要な注:真に紛失しない
ではないこの方法は、「r」形式の指定器のディスプレイの丸めを効果的に模倣しますが、完全に損失のない変換ではありません。 ラウンドトリップ(文字列に変換して[データの損失なしでに戻る)が最重要である場合、より正確なソリューションのために、「r」形式を採用しているものなどの代替アプローチを考慮してください。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3