Language
Note
ãã®ããŒãžã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ èŠã§ãã ãµã€ã³ã€ã³ãŸãã¯ãã£ã¬ã¯ããªã®å€æŽã詊ãããšãã§ããŸãã
ãã®ããŒãžã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ èŠã§ãã ãã£ã¬ã¯ããªã®å€æŽã詊ãããšãã§ããŸãã
æšæºã®æ°å€æžåŒæå®æååã¯ãäžè¬çãªæ°å€åã®æžåŒèšå®ã«äœ¿çšãããŸãã æšæºã®æ°å€æžåŒæå®æååã¯ã次㮠[format specifier][precision specifier]圢åŒã«ãªããŸãã
æžåŒæå®å ã¯ãé貚ãããŒã»ã³ããªã©ã®æ°å€æžåŒã®çš®é¡ãæå®ããåäžã®è±åã§ãã 空çœãå«ãè€æ°ã®è±åãå«ãæ°å€æžåŒæå®æååã¯ãã«ã¹ã¿ã ã®æ°å€æžåŒæå®æååãšããŠè§£éãããŸãã 詳现ã«ã€ããŠã¯ãã ã«ã¹ã¿ã æ°å€æžåŒæå®æååããåç §ããŠãã ããã
æå¹æ¡æ°æå®å ã¯ãçµæã®æååã®æ¡æ°ã«åœ±é¿ãäžããçç¥å¯èœãªæŽæ°ã§ãã .NET 7 以éã®ããŒãžã§ã³ã§ã¯ãæå€§æå¹æ¡æ°ã¯ 999,999,999 ã§ãã .NET 6 ã§ã¯ãæå€§æå¹æ¡æ°ã®å€ã Int32.MaxValueã 以åã® .NET ããŒãžã§ã³ã§ã¯ãæå¹æ¡æ°ã®ç¯å²ã¯ 0 ãã 99 ã§ãã 粟床æå®åã¯ãæ°å€ã®æåå衚çŸã®æ¡æ°ãå¶åŸ¡ããŸãã æ°å€èªäœã¯äžžããããŸããã äžžãæäœãå®è¡ããã«ã¯ã Math.Ceilingã Math.FloorããŸã㯠Math.Round ã¡ãœããã䜿çšããŸãã
粟床æå®åãçµææååã®å°æ°éšã®æ¡æ°ãå¶åŸ¡ããå Žåãçµææååã«ã¯ãç¡éã«æ£ç¢ºãªçµæã«æãè¿ã衚çŸå¯èœãªçµæã«äžžããããæ°å€ãåæ ãããŸãã çãã衚çŸå¯èœãªçµæã 2 ã€ããå Žå:
- .NET Core 2.0 ãŸã§ã® .NET Framework ãš .NET Core ã§ã¯ãã©ã³ã¿ã€ã ã¯æäžäœæ¡ (ã€ãŸãã MidpointRounding.AwayFromZeroã䜿çš) ã§çµæãéžæããŸãã
- .NET Core 2.1 以éã§ã¯ãã©ã³ã¿ã€ã ã¯çµæãæäžäœã®æ°å (ã€ãŸãã MidpointRounding.ToEvenã䜿çš) ã§éžæããŸãã
泚
粟床æå®åã¯ãçµææååã®æ¡æ°ã決å®ããŸãã çµææååã«å é ãŸãã¯æ«å°Ÿã®ã¹ããŒã¹ãåã蟌ãã«ã¯ã è€åæžåŒèšå®æ©èœã 䜿çšããæžåŒé ç®ã§ å¹ ã³ã³ããŒãã³ã ãå®çŸ©ããŸãã
æšæºã®æ°å€æžåŒæå®æååã¯ãæ¬¡ã®æ¹æ³ã§ãµããŒããããŠããŸãã
ãã¹ãŠã®æ°å€åã®
ToStringã¡ãœããã®ããã€ãã®ãªãŒããŒããŒãã ããšãã°ã Int32.ToString(String) ã¡ãœãããš Int32.ToString(String, IFormatProvider) ã¡ãœããã«æ°å€æžåŒæå®æååãæå®ã§ããŸããTryFormatãInt32.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)ãªã©ããã¹ãŠã®æ°å€åã®Single.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)ã¡ãœããã.NET è€åæžåŒèšå®æ©èœãããã¯ã
Writeã¯ã©ã¹ãšWriteLineã¯ã©ã¹ãConsole ã¡ãœãããããã³StreamWriter ã¡ãœããã®äžéšã®String.Formatã¡ãœãããšStringBuilder.AppendFormat ã¡ãœããã§äœ¿çšãããŸãã è€åæžåŒæ©èœã䜿çšãããšã1 ã€ã®æååã«è€æ°ã®ããŒã¿é ç®ã®æåå衚çŸãå«ãããã£ãŒã«ãã®å¹ ãæå®ãããã£ãŒã«ãå ã®æ°å€ãæããããšãã§ããŸãã 詳现ã«ã€ããŠã¯ãã è€åæžåŒããåç §ããŠãã ãããC# ãš Visual Basic ã®æ¿å ¥æååãè€åæžåŒæå®æååãšæ¯èŒãããšãæ§æãç°¡ç¥åãããŸãã
ãã³ã
æžåŒèšå®ãŠãŒãã£ãªã㣠(.NET Core Windows ãã©ãŒã ã¢ããªã±ãŒã·ã§ã³) ãããŠã³ããŒãããŠãæ°å€ãŸãã¯æ¥ä»ãšæå»ã®å€ã«æžåŒæå®æååãé©çšããçµææååã衚瀺ã§ããŸãã ãœãŒã¹ ã³ãŒã㯠ãC# ãš Visual Basic ã§äœ¿çšã§ããŸãã
æšæºæžåŒæå®å
次ã®è¡šã§ã¯ãæšæºã®æ°å€æžåŒæå®åã«ã€ããŠèª¬æããåæžåŒæå®åã«ãã£ãŠçæããããµã³ãã«åºåã衚瀺ããŸãã æšæºã®æ°å€æžåŒæå®æååã®äœ¿çšã«é¢ãã詳现ã«ã€ããŠã¯ ããã¡ã¢ ãã»ã¯ã·ã§ã³ãåç §ãã䜿çšã®å æ¬çãªå³ã«ã€ããŠã¯ ãã³ãŒãäŸ ãã»ã¯ã·ã§ã³ãåç §ããŠãã ããã
ç¹å®ã®ã«ã«ãã£ã®æžåŒèšå®ãããæååã®çµæã¯ã次ã®äŸãšã¯ç°ãªãå ŽåããããŸãã ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã®èšå®ããŠãŒã¶ãŒèšå®ãç°å¢å€æ°ã䜿çšããŠãã .NET ã®ããŒãžã§ã³ã¯ãã¹ãŠã圢åŒã«åœ±é¿ãäžããå¯èœæ§ããããŸãã ããšãã°ã.NET 5 以éã§ã¯ã.NET ã¯ãã©ãããã©ãŒã éã§ã«ã«ãã£åœ¢åŒãçµ±åããããšããŸãã 詳现ã«ã€ããŠã¯ãã .NET ã®ã°ããŒããªãŒãŒã·ã§ã³ãš ICUããåç §ããŠãã ããã
| æžåŒæå®å | åå | 説æ | äŸç€º |
|---|---|---|---|
| "B" ãŸã㯠"b" | ãã€ã㪠| çµæ: ãã€ããªæååã ãµããŒã察象: æŽæ°åã®ã¿ (.NET 8 以é)ã 粟床æå®å: çµææååã®æ¡æ°ã 詳现æ å ±: ãã€ã㪠("B") æžåŒæå®åã |
42(ãBã) â> 101010 255(ãB16ã) -> 0000000011111111 |
| "C" ãŸã㯠"c" | é貚 | çµæ: é貚å€ã ãµããŒã察象: ãã¹ãŠã®æ°å€åã æå¹æ¡æ°æå®å: 10 鲿°ã®æ¡æ°ã æ¢å®ã®ç²ŸåºŠæå®å: NumberFormatInfo.CurrencyDecimalDigitsã«ãã£ãŠå®çŸ©ãããŸãã 詳现: é貚 ("C") æžåŒæå®åã |
123.456 ( "C", en-US) -> \$123.46 123.456 ( "C", fr-FR) -> 123,46 ãŠãŒã 123.456 ( "C", ja-JP) -> 123å -123.456 (ãC3ããen-US) -> (\$123.456) -123.456 (ãC3ããfr-FR) -> -123,456ãŠãŒã -123.456 (ãC3ããja-JP) -> -123.456å |
| "D" ãŸã㯠"d" | å°æ° | çµæ: çç¥å¯èœãªè² 笊å·ãæã€æŽæ°ã®æ°åã ãµããŒã察象: æŽæ°åã®ã¿ã æå¹æ¡æ°æå®å: æå°æ¡æ°ã æ¢å®ã®æå¹æ¡æ°æå®å: å¿ èŠãªæå°æ¡æ°ã 詳现: Decimal("D") æžåŒæå®åã |
1234(ãDã) â> 1234 -1234(ãD6ã) -> -001234 |
| "E" ãŸã㯠"e" | ææ°é¢æ° (ç§åŠç) | çµæ: ææ°è¡šèšã ãµããŒã察象: ãã¹ãŠã®æ°å€åã æå¹æ¡æ°æå®å: 10 鲿°ã®æ¡æ°ã æ¢å®ã®ç²ŸåºŠæå®å: 6ã 詳现: ææ° ("E") æžåŒæå®åã |
1052.0329112756 (ãEããen-US) -> 1.052033E+003 1052.0329112756 (ãeããfr-FR) â> 1,052033E+003 -1052.0329112756 ("E2", en-US) -> -1.05e+003 -1052.0329112756 (ãE2ããfr-FR) -> -1,05E+003 |
| "F" ãŸã㯠"f" | åºå®å°æ°ç¹ | çµæ: çç¥å¯èœãªè² 笊å·ãæã€æŽæ°ãš 10 鲿°ã ãµããŒã察象: ãã¹ãŠã®æ°å€åã æå¹æ¡æ°æå®å: 10 鲿°ã®æ¡æ°ã æ¢å®ã®ç²ŸåºŠæå®å: NumberFormatInfo.NumberDecimalDigitsã«ãã£ãŠå®çŸ©ãããŸãã 詳现: Fixed-Point ("F") æžåŒæå®åã |
1234.567 ( "F", en-US) -> 1234.57 1234.567 ( "F", de-DE) â> 1234,57 1234( "F1"ãen-US幎) â> 1234.0 1234( "F1"ãde-DE幎) -> 1234,0 -1234.56(ãF4ããen-US) -> -1234.5600 -1234.56(ãF4ããde-DE) â³> -1234,5600 |
| "G" ãŸã㯠"g" | å šè¬ | çµæ: åºå®å°æ°ç¹è¡šèšãŸãã¯ææ°è¡šèšã®æ¹ãã³ã³ãã¯ãã§ãã ãµããŒã察象: ãã¹ãŠã®æ°å€åã æå¹æ¡æ°æå®å: æå¹æ¡æ°ã æ¢å®ã®ç²ŸåºŠæå®å: æ°å€åã«ãã£ãŠç°ãªããŸãã 詳现: äžè¬ ("G") æžåŒæå®åã |
-123.456(ãGããen-US) -> -123.456 -123.456(ãGããsv-SE) â³> 123,456 123.4546 (ãG4ããen-US) -> 123.5 123.4546 (ãG4ããsv-SE) â> 123,5 -1.234567890e-25 ("G", en-US) -> -1.23456789E-25 -1.234567890e-25 ("G", sv-SE) -> -1,23456789E-25 |
| "N" ãŸã㯠"n" | çªå· | çµæ: æŽæ°ããã³ 10 鲿°ãã°ã«ãŒãåºåãèšå·ãããã³çç¥å¯èœãªè² 笊å·ãæã€å°æ°ç¹åºåãèšå·ã ãµããŒã察象: ãã¹ãŠã®æ°å€åã æå¹æ¡æ°æå®å: å°æ°ç¹ä»¥äžã®æ¡æ°ãæå®ããŸãã æ¢å®ã®ç²ŸåºŠæå®å: NumberFormatInfo.NumberDecimalDigitsã«ãã£ãŠå®çŸ©ãããŸãã 詳现: æ°å€ ("N") æžåŒæå®åã |
1234.567 ( N ã en-US) â³> 1,234.57 1234.567 ( N ã ru-RU) â> 1 234,57 1234(ãN1ããen-US) â³> 1,234.0 1234(ãN1ããru-RU) â> 1 234,0 -1234.56 (ãN3ããen-US) â³> -1,234.560 -1234.56 (ãN3ããru-RU) â³> -1 234,560 |
| "P" ãŸã㯠"p" | ããŒã»ã³ã | çµæ: æ°å€ã« 100 ãä¹ç®ããããŒã»ã³ãèšå·ã§è¡šç€ºããŸãã ãµããŒã察象: ãã¹ãŠã®æ°å€åã æå¹æ¡æ°æå®å: å°æ°ç¹ä»¥äžã®æ¡æ°ãæå®ããŸãã æ¢å®ã®ç²ŸåºŠæå®å: NumberFormatInfo.PercentDecimalDigitsã«ãã£ãŠå®çŸ©ãããŸãã 詳现: ããŒã»ã³ã ("P") æžåŒæå®åã |
1(ãPããen-US) -> 100.00 % 1(ãPããfr-FR) â> 100,00 % -0.39678 (ãP1ããen-US) â> -39.7 % -0.39678 (ãP1ããfr-FR) â> -39.7 % |
| "R" ãŸã㯠"r" | åŸåŸ© | çµæ: åãæ°å€ã«ã©ãŠã³ã ããªããã§ããæååã ãµããŒã: SingleãDoubleãããã³ BigIntegerã æ³š: BigInteger ã®çš®é¡ã«ã®ã¿æšå¥šãããŸãã Doubleåã®å Žå㯠ã"G17" ã䜿çšããŸããSingleåã«ã¯ "G9" ã䜿çšããŸãã æå¹æ¡æ°æå®å: ç¡èŠãããŸãã 詳现æ å ±: ã©ãŠã³ã ããªãã ("R") æžåŒæå®åã |
123456789.12345678 (ãRã) -> 123456789.12345678 -1234567890.12345678 ("R") -> -1234567890.1234567 |
| "X" ãŸã㯠"x" | 16 é² æ° | çµæ: 16 鲿°ã®æååã ãµããŒã察象: æŽæ°åã®ã¿ã 粟床æå®å: çµææååã®æ¡æ°ã 詳现æ å ±: 16 鲿° ("X") æžåŒæå®åã |
255(ãXã) â> FF -1 ("x") -> ff 255(ãx4ã) â> 00ff -1 ("X4") â> 00FF圢 |
| ãã®ä»ã® 1 æå | äžæãªæå®å | çµæ: å®è¡æã« FormatException ãã¹ããŒããŸãã |
æšæºã®æ°å€æžåŒæå®æååã䜿çšãã
æšæºã®æ°å€æžåŒæå®æååã䜿çšããŠã次ã®ããããã®æ¹æ³ã§æ°å€ã®æžåŒèšå®ãå®çŸ©ã§ããŸãã
TryFormatã¡ãœãããŸãã¯ToStringãã©ã¡ãŒã¿ãŒãæã€formatã¡ãœããã®ãªãŒããŒããŒãã«æž¡ãããšãã§ããŸãã æ¬¡ã®äŸã§ã¯ãçŸåšã®ã«ã«ã㣠(ãã®å Žå㯠en-US ã«ã«ãã£) ã®é貚æååãšããŠæ°å€ãæžåŒèšå®ããŸããdecimal value = 123.456m; Console.WriteLine(value.ToString("C2")); // Displays $123.46Dim value As Decimal = 123.456d Console.WriteLine(value.ToString("C2")) ' Displays $123.46formatStringãString.FormatãConsole.WriteLineãªã©ã®ã¡ãœããã§äœ¿çšãããæžåŒæå®é ç®ã®StringBuilder.AppendFormatåŒæ°ãšããŠæå®ã§ããŸãã 詳现ã«ã€ããŠã¯ãã è€åæžåŒããåç §ããŠãã ããã æ¬¡ã®äŸã§ã¯ãæžåŒæå®é ç®ã䜿çšããŠæååã«é貚å€ãæ¿å ¥ããŸããdecimal value = 123.456m; Console.WriteLine($"Your account balance is {value:C2}."); // Displays "Your account balance is $123.46."Dim value As Decimal = 123.456d Console.WriteLine("Your account balance is {0:C2}.", value) ' Displays "Your account balance is $123.46."å¿ èŠã«å¿ããŠã
alignmentåŒæ°ãæå®ããŠãæ°å€ãã£ãŒã«ãã®å¹ ãšããã®å€ã峿ããå·Šæãããæå®ã§ããŸãã æ¬¡ã®äŸã§ã¯ã28 æåã®ãã£ãŒã«ãã§é貚å€ãå·Šæãã«ãã14 æåã®ãã£ãŒã«ãã§é貚å€ã峿ãã«ããŸããdecimal[] amounts = { 16305.32m, 18794.16m }; Console.WriteLine(" Beginning Balance Ending Balance"); Console.WriteLine(" {0,-28:C2}{1,14:C2}", amounts[0], amounts[1]); // Displays: // Beginning Balance Ending Balance // $16,305.32 $18,794.16Dim amounts() As Decimal = {16305.32d, 18794.16d} Console.WriteLine(" Beginning Balance Ending Balance") Console.WriteLine(" {0,-28:C2}{1,14:C2}", amounts(0), amounts(1)) ' Displays: ' Beginning Balance Ending Balance ' $16,305.32 $18,794.16æ¿å ¥æååã®è£éåŒé ç®ã®
formatStringåŒæ°ãšããŠæå®ã§ããŸãã 詳现ã«ã€ããŠã¯ãC# ãªãã¡ã¬ã³ã¹ã® æååè£é ã«é¢ããèšäºããŸã㯠Visual Basic ãªãã¡ã¬ã³ã¹ã® æ¿å ¥æåå ã«é¢ããèšäºãåç §ããŠãã ããã
次ã®ã»ã¯ã·ã§ã³ã§ã¯ãåæšæºã®æ°å€æžåŒæå®æååã«ã€ããŠè©³ãã説æããŸãã
ãã€ããªæžåŒæå®å (B)
ãã€ã㪠("B") æžåŒæå®åã¯ãæ°å€ã 2 鲿°ã®æååã«å€æããŸãã ãã®åœ¢åŒã¯ãæŽæ°åã§ã®ã¿ãµããŒãããã.NET 8 以éã§ã®ã¿ãµããŒããããŸãã
粟床æå®åã¯ãçµæã®æååã«å¿ èŠãªæå°æ¡æ°ã瀺ããŸãã å¿ èŠã«å¿ããŠãæ°å€ãå·Šã«ãŒãã§åã蟌ã¿ã粟床æå®åã«ãã£ãŠæå®ãããæ¡æ°ãçæããŸãã
BigIntegerã®å Žåãæ£ã®å€ã¯åžžã«ãè² ã®å€ãšåºå¥ããããã«å
é ã« 0 ãä»ããŸãã ããã«ãããè§£ææã«å
ã®å€ãžã®åºåã©ãŠã³ã ããªãããä¿èšŒãããŸãã ããšãã°ãæžåŒæå®å3ã§å€æ"B2"æ°å€ã¯"011"ã ããã¯ã2 鲿°"11"-1è² ã®å€ã衚ããŠããããã§ããããã¯ã2圢åŒãåå ã§æ£ç¢ºã«"B2" ããããæã€æ°å€ãšããŠè§£éãããããã§ãã
çµææååã¯ãçŸåšã® NumberFormatInfo ãªããžã§ã¯ãã®æžåŒèšå®æ å ±ã®åœ±é¿ãåããŸããã
é貚æžåŒæå®å (C)
"C" (é貚) æžåŒæå®åã¯ãæ°å€ãé貚éé¡ã衚ãæååã«å€æããŸãã 粟床æå®åã¯ãçµææååå ã®å°æ°ç¹ä»¥äžã®æ¡æ°ã瀺ããŸãã 粟床æå®åãçç¥ãããšãæ¢å®ã®æå¹æ¡æ°ã¯ NumberFormatInfo.CurrencyDecimalDigits ããããã£ã«ãã£ãŠå®çŸ©ãããŸãã
æžåŒèšå®ããå€ããæå®ãããå°æ°ç¹ä»¥äžã®æ¡æ°ãŸãã¯æ¢å®ã®æ¡æ°ãè¶ ããå Žåãå°æ°éšã®å€ã¯çµææååã§äžžããããŸãã æå®ããå°æ°ç¹ä»¥äžã®æ¡æ°ã®å³åŽã®å€ã 5 以äžã®å Žåãçµææååã®æåŸã®æ¡ã¯ 0 ããåãæšãŠãããŸãã
çµææååã¯ãçŸåšã® NumberFormatInfo ãªããžã§ã¯ãã®æžåŒèšå®æ å ±ã®åœ±é¿ãåããŸãã æ¬¡ã®è¡šã«ãè¿ãããæååã®æžåŒèšå®ãå¶åŸ¡ãã NumberFormatInfo ããããã£ã瀺ããŸãã
| NumberFormatInfo ãããã㣠| 説æ |
|---|---|
| CurrencyPositivePattern | æ£ã®å€ã®é貚èšå·ã®é 眮ãå®çŸ©ããŸãã |
| CurrencyNegativePattern | è² ã®å€ã®é貚èšå·ã®é 眮ãå®çŸ©ããè² ã®ç¬Šå·ããã£ããŸã㯠NegativeSign ããããã£ã§è¡šããã©ãããæå®ããŸãã |
| NegativeSign | ãã£ãã䜿çšãããŠããªãããšã瀺 CurrencyNegativePattern å Žåã«äœ¿çšãããè² ã®ç¬Šå·ãå®çŸ©ããŸãã |
| CurrencySymbol | é貚èšå·ãå®çŸ©ããŸãã |
| CurrencyDecimalDigits | é貚å€ã®æ¢å®ã® 10 鲿°ãå®çŸ©ããŸãã ãã®å€ã¯ã粟床æå®åã䜿çšããŠãªãŒããŒã©ã€ãã§ããŸãã |
| CurrencyDecimalSeparator | æŽæ°ãš 10 鲿°ãåºåãæååãå®çŸ©ããŸãã |
| CurrencyGroupSeparator | æŽæ°ã®ã°ã«ãŒããåºåãæååãå®çŸ©ããŸãã |
| CurrencyGroupSizes | ã°ã«ãŒãã«è¡šç€ºãããæŽæ°ã®æ¡æ°ãå®çŸ©ããŸãã |
次ã®äŸã§ã¯ãé貚æžåŒæå®åã䜿çšã㊠Double å€ãæžåŒèšå®ããŸãã
double value = 12345.6789;
Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture));
Console.WriteLine(value.ToString("C3", CultureInfo.CurrentCulture));
Console.WriteLine(value.ToString("C3",
CultureInfo.CreateSpecificCulture("da-DK")));
// The example displays the following output on a system whose
// current culture is English (United States):
// $12,345.68
// $12,345.679
// 12.345,679 kr
Dim value As Double = 12345.6789
Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture))
Console.WriteLine(value.ToString("C3", CultureInfo.CurrentCulture))
Console.WriteLine(value.ToString("C3", _
CultureInfo.CreateSpecificCulture("da-DK")))
' The example displays the following output on a system whose
' current culture is English (United States):
' $12,345.68
' $12,345.679
' kr 12.345,679
10 鲿žåŒæå®å (D)
"D" (ãŸã㯠10 鲿°) æžåŒæå®åã¯ãæ°å€ã 10 鲿° (0 ãã 9) ã®æååã«å€æããŸããæ°å€ãè² ã®å Žåã¯ãå é ã«è² 笊å·ãä»ããŸãã ãã®åœ¢åŒã¯ãæŽæ°åã§ã®ã¿ãµããŒããããŸãã
粟床æå®åã¯ãçµæã®æååã«å¿ èŠãªæå°æ¡æ°ã瀺ããŸãã å¿ èŠã«å¿ããŠãæ°å€ãå·Šã«ãŒãã§åã蟌ã¿ã粟床æå®åã«ãã£ãŠæå®ãããæ¡æ°ãçæããŸãã æå¹æ¡æ°æå®åãæå®ãããŠããªãå Žåãæ¢å®å€ã¯ãå é ã«ãŒããä»ããã«æŽæ°ã衚ãããã«å¿ èŠãªæå°å€ã§ãã
çµææååã¯ãçŸåšã® NumberFormatInfo ãªããžã§ã¯ãã®æžåŒèšå®æ å ±ã®åœ±é¿ãåããŸãã æ¬¡ã®è¡šã«ç€ºãããã«ã1 ã€ã®ããããã£ãçµææååã®æžåŒèšå®ã«åœ±é¿ããŸãã
| NumberFormatInfo ãããã㣠| 説æ |
|---|---|
| NegativeSign | æ°å€ãè² ã§ããããšã瀺ãæååãå®çŸ©ããŸãã |
次ã®äŸã§ã¯ã10 鲿žåŒæå®åã䜿çšã㊠Int32 å€ãæžåŒèšå®ããŸãã
int value;
value = 12345;
Console.WriteLine(value.ToString("D"));
// Displays 12345
Console.WriteLine(value.ToString("D8"));
// Displays 00012345
value = -12345;
Console.WriteLine(value.ToString("D"));
// Displays -12345
Console.WriteLine(value.ToString("D8"));
// Displays -00012345
Dim value As Integer
value = 12345
Console.WriteLine(value.ToString("D"))
' Displays 12345
Console.WriteLine(value.ToString("D8"))
' Displays 00012345
value = -12345
Console.WriteLine(value.ToString("D"))
' Displays -12345
Console.WriteLine(value.ToString("D8"))
' Displays -00012345
ææ°æžåŒæå®å (E)
ææ° ("E") æžåŒæå®åã¯ãæ°å€ã "-d.ddd... 圢åŒã®æååã«å€æããŸããE+ddd" ãŸã㯠"-d.ddd...e+ddd"ãå "d" ã¯æ°å (0 ãã 9) ã瀺ããŸãã æ°å€ãè² ã®å Žåãæååã¯è² 笊å·ã§å§ãŸããŸãã å°æ°ç¹ã®åã«ã¯åžžã« 1 æ¡ã®æ°åãä»ããããŸãã
粟床æå®åã¯ãå°æ°ç¹ã®åŸã«å¿ èŠãªæ¡æ°ã瀺ããŸãã æå¹æ¡æ°æå®åãçç¥ãããšãå°æ°ç¹ã®åŸã« 6 æ¡ã®æ¢å®å€ã䜿çšãããŸãã
æžåŒæå®åã®å€§æåãšå°æåã¯ãææ°ã®åã« "E" ãŸã㯠"e" ãä»ãããã©ããã瀺ããŸãã ææ°ã¯åžžã«ãæ£ç¬Šå·ãŸãã¯è² 笊å·ãš 3 æ¡ä»¥äžã§æ§æãããŸãã ææ°ã¯ãå¿ èŠã«å¿ããŠããã®æå°å€ãæºããããã«ãŒãã§åã蟌ãŸããŸãã
çµææååã¯ãçŸåšã® NumberFormatInfo ãªããžã§ã¯ãã®æžåŒèšå®æ å ±ã®åœ±é¿ãåããŸãã æ¬¡ã®è¡šã«ãè¿ãããæååã®æžåŒèšå®ãå¶åŸ¡ãã NumberFormatInfo ããããã£ã瀺ããŸãã
| NumberFormatInfo ãããã㣠| 説æ |
|---|---|
| NegativeSign | ä¿æ°ãšææ°ã®äž¡æ¹ã«å¯ŸããŠæ°å€ãè² ã§ããããšã瀺ãæååãå®çŸ©ããŸãã |
| NumberDecimalSeparator | ä¿æ°ã®æŽæ°æ¡ãš 10 鲿°ãåºåãæååãå®çŸ©ããŸãã |
| PositiveSign | ææ°ãæ£ã§ããããšã瀺ãæååãå®çŸ©ããŸãã |
次ã®äŸã§ã¯ãææ°æžåŒæå®åã䜿çšã㊠Double å€ãæžåŒèšå®ããŸãã
double value = 12345.6789;
Console.WriteLine(value.ToString("E", CultureInfo.InvariantCulture));
// Displays 1.234568E+004
Console.WriteLine(value.ToString("E10", CultureInfo.InvariantCulture));
// Displays 1.2345678900E+004
Console.WriteLine(value.ToString("e4", CultureInfo.InvariantCulture));
// Displays 1.2346e+004
Console.WriteLine(value.ToString("E",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 1,234568E+004
Dim value As Double = 12345.6789
Console.WriteLine(value.ToString("E", CultureInfo.InvariantCulture))
' Displays 1.234568E+004
Console.WriteLine(value.ToString("E10", CultureInfo.InvariantCulture))
' Displays 1.2345678900E+004
Console.WriteLine(value.ToString("e4", CultureInfo.InvariantCulture))
' Displays 1.2346e+004
Console.WriteLine(value.ToString("E", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 1,234568E+004
åºå®å°æ°ç¹æžåŒæå®å (F)
åºå®å°æ°ç¹ ("F") æžåŒæå®åã¯ãæ°å€ã "-ddd.ddd..." ãšãã圢åŒã®æååã«å€æããŸããããã§ãå "d" ã¯æ°å (0 ãã 9) ã瀺ããŸãã æ°å€ãè² ã®å Žåãæååã¯è² 笊å·ã§å§ãŸããŸãã
粟床æå®åã¯ãå°æ°ç¹ä»¥äžã®æ¡æ°ã瀺ããŸãã æå¹æ¡æ°æå®åãçç¥ãããšãçŸåšã® NumberFormatInfo.NumberDecimalDigits ããããã£ã¯æ°å€ã®æå¹æ¡æ°ãæäŸããŸãã
çµææååã¯ãçŸåšã® NumberFormatInfo ãªããžã§ã¯ãã®æžåŒèšå®æ å ±ã®åœ±é¿ãåããŸãã æ¬¡ã®è¡šã«ãçµææååã®æžåŒèšå®ãå¶åŸ¡ãã NumberFormatInfo ãªããžã§ã¯ãã®ããããã£ã瀺ããŸãã
| NumberFormatInfo ãããã㣠| 説æ |
|---|---|
| NegativeSign | æ°å€ãè² ã§ããããšã瀺ãæååãå®çŸ©ããŸãã |
| NumberDecimalSeparator | æŽæ°æ¡ãš 10 鲿°ãåºåãæååãå®çŸ©ããŸãã |
| NumberDecimalDigits | æ¢å®ã® 10 鲿°ãå®çŸ©ããŸãã ãã®å€ã¯ã粟床æå®åã䜿çšããŠãªãŒããŒã©ã€ãã§ããŸãã |
次ã®äŸã§ã¯ãåºå®å°æ°ç¹æžåŒæå®åã䜿çšã㊠Double ãš Int32 å€ãæžåŒèšå®ããŸãã
int integerNumber;
integerNumber = 17843;
Console.WriteLine(integerNumber.ToString("F",
CultureInfo.InvariantCulture));
// Displays 17843.00
integerNumber = -29541;
Console.WriteLine(integerNumber.ToString("F3",
CultureInfo.InvariantCulture));
// Displays -29541.000
double doubleNumber;
doubleNumber = 18934.1879;
Console.WriteLine(doubleNumber.ToString("F", CultureInfo.InvariantCulture));
// Displays 18934.19
Console.WriteLine(doubleNumber.ToString("F0", CultureInfo.InvariantCulture));
// Displays 18934
doubleNumber = -1898300.1987;
Console.WriteLine(doubleNumber.ToString("F1", CultureInfo.InvariantCulture));
// Displays -1898300.2
Console.WriteLine(doubleNumber.ToString("F3",
CultureInfo.CreateSpecificCulture("es-ES")));
// Displays -1898300,199
Dim integerNumber As Integer
integerNumber = 17843
Console.WriteLine(integerNumber.ToString("F", CultureInfo.InvariantCulture))
' Displays 17843.00
integerNumber = -29541
Console.WriteLine(integerNumber.ToString("F3", CultureInfo.InvariantCulture))
' Displays -29541.000
Dim doubleNumber As Double
doubleNumber = 18934.1879
Console.WriteLine(doubleNumber.ToString("F", CultureInfo.InvariantCulture))
' Displays 18934.19
Console.WriteLine(doubleNumber.ToString("F0", CultureInfo.InvariantCulture))
' Displays 18934
doubleNumber = -1898300.1987
Console.WriteLine(doubleNumber.ToString("F1", CultureInfo.InvariantCulture))
' Displays -1898300.2
Console.WriteLine(doubleNumber.ToString("F3", _
CultureInfo.CreateSpecificCulture("es-ES")))
' Displays -1898300,199
äžè¬çãªæžåŒæå®å (G)
äžè¬ ("G") æžåŒæå®åã¯ãæ°å€ã®çš®é¡ãšç²ŸåºŠæå®åãååšãããã©ããã«å¿ããŠãæ°å€ãåºå®å°æ°ç¹è¡šèšãŸãã¯ææ°è¡šèšã®ããã³ã³ãã¯ãã«å€æããŸãã 粟床æå®åã¯ãçµææååã«è¡šç€ºã§ããæå¹æ¡æ°ã®æå€§æ°ãå®çŸ©ããŸãã æå¹æ¡æ°æå®åãçç¥ããå Žåãæ¬¡ã®è¡šã«ç€ºãããã«ãæ°å€ã®åã«ãã£ãŠæ¢å®ã®æå¹æ¡æ°ã決ãŸããŸãã
| æ°å€å | æ¢å®ã®æå¹æ¡æ° |
|---|---|
| Byte ãŸã㯠SByte | 3 æ¡ã®æ°å |
| Int16 ãŸã㯠UInt16 | 5 æ¡ã®æ°å |
| Int32 ãŸã㯠UInt32 | 10 æ¡ã®æ°å |
| Int64 | 19 æ¡ã®æ°å |
| UInt64 | 20 æ¡ã®æ°å |
| BigInteger | ç¡å¶é ( "R" ãšåã) |
| Half | æ°å€ã衚ãæå°ã®ã©ãŠã³ãããªããå¯èœãªæ¡æ° |
| Single | æ°å€ã衚ãæå°ã®ã©ãŠã³ãããªããå¯èœãªæ¡æ° (.NET Framework ã§ã¯ G7 ãæ¢å®å€) |
| Double | æ°å€ã衚ãæå°ã®ã©ãŠã³ãããªããå¯èœãªæ¡æ° (.NET Framework ã§ã¯ G15 ãæ¢å®å€) |
| Decimal | æ°å€ã衚ãæå°ã®ã©ãŠã³ãããªããå¯èœãªæ¡æ° |
ææ°è¡šèšã§æ°å€ã衚ããçµæã®ææ°ã -5 ãã倧ãããæå¹æ¡æ°æå®åããå°ããå Žåã¯ãåºå®å°æ°ç¹è¡šèšã䜿çšãããŸãããã以å€ã®å Žåã¯ãç§åŠç衚èšã䜿çšãããŸãã çµæã«ã¯ãå¿ èŠã«å¿ããŠå°æ°ç¹ãå«ãŸããŠãããå°æ°ç¹ã®åŸã®æ«å°Ÿã®ãŒãã¯çç¥ãããŸãã 粟床æå®åãååšããçµæã®æå¹æ¡æ°ãæå®ãããæå¹æ¡æ°ãè¶ ããå Žåãæ«å°Ÿã®äœåãªæ°åã¯äžžããŠåé€ãããŸãã
ãã ããæ°å€ã Decimal ã§ã粟床æå®åãçç¥ããå Žåã¯ãåžžã«åºå®å°æ°ç¹è¡šèšã䜿çšãããæ«å°Ÿã®ãŒãã¯ä¿æãããŸãã
ææ°è¡šèšã䜿çšããå ŽåãæžåŒæå®åã "G" ã®å Žåã¯çµæã®ææ°ã®åã« "E" ãä»ããæžåŒæå®åã "g" ã®å Žå㯠"e" ãä»ããŸãã ææ°ã«ã¯ãå°ãªããšã 2 æ¡ã®æ°åãå«ãŸããŠããŸãã ããã¯ææ°æžåŒæå®åã«ãã£ãŠçæãããææ°è¡šèšã®åœ¢åŒãšã¯ç°ãªããŸããææ°ã«ã¯ 3 æ¡ä»¥äžãå«ãŸããŸãã
Doubleå€ãšå
±ã«äœ¿çšãããšã"G17" æžåŒæå®åã«ãã£ãŠå
ã®Doubleå€ãã©ãŠã³ã ããªããã«æåããŸãã ããã¯ã Double 㯠IEEE 754-2008 æºæ ã®å粟床 (binary64) æµ®åå°æ°ç¹æ°ã§ãããæå¹æ¡æ°ãæå€§ 17 æ¡ã§ããããã§ãã .NET Framework ã§ã¯ã "R" æžåŒæå®åã®ä»£ããã«äœ¿çšããããšããå§ãããŸããå Žåã«ãã£ãŠã¯ã"R" ãå粟床浮åå°æ°ç¹å€ã®ã©ãŠã³ãããªããã«å€±æããå Žåãããããã§ãã
Singleå€ãšå
±ã«äœ¿çšãããšã"G9" æžåŒæå®åã«ãã£ãŠå
ã®Singleå€ãã©ãŠã³ã ããªããã«æåããŸãã ããã¯ã Single 㯠IEEE 754-2008 æºæ ã®å粟床 (binary32) æµ®åå°æ°ç¹æ°ã§ãããæå¹æ¡æ°ãæå€§ 9 æ¡ã§ããããã§ãã ããã©ãŒãã³ã¹äžã®çç±ããã "R" æžåŒæå®åã®ä»£ããã«äœ¿çšããããšããå§ãããŸãã
çµææååã¯ãçŸåšã® NumberFormatInfo ãªããžã§ã¯ãã®æžåŒèšå®æ å ±ã®åœ±é¿ãåããŸãã æ¬¡ã®è¡šã«ãçµææååã®æžåŒèšå®ãå¶åŸ¡ãã NumberFormatInfo ããããã£ã瀺ããŸãã
| NumberFormatInfo ãããã㣠| 説æ |
|---|---|
| NegativeSign | æ°å€ãè² ã§ããããšã瀺ãæååãå®çŸ©ããŸãã |
| NumberDecimalSeparator | æŽæ°æ¡ãš 10 鲿°ãåºåãæååãå®çŸ©ããŸãã |
| PositiveSign | ææ°ãæ£ã§ããããšã瀺ãæååãå®çŸ©ããŸãã |
次ã®äŸã§ã¯ãæ±çšæžåŒæå®åã䜿çšããŠãäžŠã¹æ¿ããæµ®åå°æ°ç¹å€ãæžåŒèšå®ããŸãã
double number;
number = 12345.6789;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 12345.6789
Console.WriteLine(number.ToString("G",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 12345,6789
Console.WriteLine(number.ToString("G7", CultureInfo.InvariantCulture));
// Displays 12345.68
number = .0000023;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 2.3E-06
Console.WriteLine(number.ToString("G",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 2,3E-06
number = .0023;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 0.0023
number = 1234;
Console.WriteLine(number.ToString("G2", CultureInfo.InvariantCulture));
// Displays 1.2E+03
number = Math.PI;
Console.WriteLine(number.ToString("G5", CultureInfo.InvariantCulture));
// Displays 3.1416
Dim number As Double
number = 12345.6789
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays 12345.6789
Console.WriteLine(number.ToString("G", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 12345,6789
Console.WriteLine(number.ToString("G7", CultureInfo.InvariantCulture))
' Displays 12345.68
number = .0000023
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays 2.3E-06
Console.WriteLine(number.ToString("G", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 2,3E-06
number = .0023
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays 0.0023
number = 1234
Console.WriteLine(number.ToString("G2", CultureInfo.InvariantCulture))
' Displays 1.2E+03
number = Math.Pi
Console.WriteLine(number.ToString("G5", CultureInfo.InvariantCulture))
' Displays 3.1416
æ°å€æžåŒæå®å (N)
æ°å€ ("N") æžåŒæå®åã¯ãæ°å€ã "-d,ddd,ddd.ddd...." ãšãã圢åŒã®æååã«å€æããŸããããã§ã"-" ã¯å¿ èŠã«å¿ããŠè² ã®æ°ã®èšå·ã瀺ãã"d" ã¯æ°å (0 ãã 9)ã"ãã°ã«ãŒãåºåãèšå·ã瀺ãã"." ã¯å°æ°ç¹èšå·ã瀺ããŸãã 粟床æå®åã¯ãå°æ°ç¹ã®åŸã«å¿ èŠãªæ¡æ°ã瀺ããŸãã æå¹æ¡æ°æå®åãçç¥ãããšãçŸåšã® NumberFormatInfo.NumberDecimalDigits ããããã£ã«ãã£ãŠå°æ°ç¹ä»¥äžã®æ¡æ°ãå®çŸ©ãããŸãã
çµææååã¯ãçŸåšã® NumberFormatInfo ãªããžã§ã¯ãã®æžåŒèšå®æ å ±ã®åœ±é¿ãåããŸãã æ¬¡ã®è¡šã«ãçµææååã®æžåŒèšå®ãå¶åŸ¡ãã NumberFormatInfo ããããã£ã瀺ããŸãã
| NumberFormatInfo ãããã㣠| 説æ |
|---|---|
| NegativeSign | æ°å€ãè² ã§ããããšã瀺ãæååãå®çŸ©ããŸãã |
| NumberNegativePattern | è² ã®å€ã®åœ¢åŒãå®çŸ©ããè² ã®ç¬Šå·ããã£ããŸã㯠NegativeSign ããããã£ã§è¡šããã©ãããæå®ããŸãã |
| NumberGroupSizes | ã°ã«ãŒãåºåãèšå·ã®éã«è¡šç€ºãããæŽæ°ã®æ¡æ°ãå®çŸ©ããŸãã |
| NumberGroupSeparator | æŽæ°ã®ã°ã«ãŒããåºåãæååãå®çŸ©ããŸãã |
| NumberDecimalSeparator | æŽæ°ãš 10 鲿°ãåºåãæååãå®çŸ©ããŸãã |
| NumberDecimalDigits | æ¢å®ã® 10 鲿°ãå®çŸ©ããŸãã ãã®å€ã¯ã粟床æå®åã䜿çšããŠãªãŒããŒã©ã€ãã§ããŸãã |
次ã®äŸã§ã¯ãæ°å€æžåŒæå®åã䜿çšããŠãäžŠã¹æ¿ããæµ®åå°æ°ç¹å€ãæžåŒèšå®ããŸãã
double dblValue = -12445.6789;
Console.WriteLine(dblValue.ToString("N", CultureInfo.InvariantCulture));
// Displays -12,445.68
Console.WriteLine(dblValue.ToString("N1",
CultureInfo.CreateSpecificCulture("sv-SE")));
// Displays -12 445,7
int intValue = 123456789;
Console.WriteLine(intValue.ToString("N1", CultureInfo.InvariantCulture));
// Displays 123,456,789.0
Dim dblValue As Double = -12445.6789
Console.WriteLine(dblValue.ToString("N", CultureInfo.InvariantCulture))
' Displays -12,445.68
Console.WriteLine(dblValue.ToString("N1", _
CultureInfo.CreateSpecificCulture("sv-SE")))
' Displays -12 445,7
Dim intValue As Integer = 123456789
Console.WriteLine(intValue.ToString("N1", CultureInfo.InvariantCulture))
' Displays 123,456,789.0
ããŒã»ã³ãæžåŒæå®å (P)
ããŒã»ã³ã ("P") æžåŒæå®åã¯ãæ°å€ã« 100 ãä¹ç®ããããŒã»ã³ããŒãžã衚ãæååã«å€æããŸãã 粟床æå®åã¯ãå°æ°ç¹ä»¥äžã®æ¡æ°ã瀺ããŸãã æå¹æ¡æ°æå®åãçç¥ãããšãçŸåšã® PercentDecimalDigits ããããã£ã«ãã£ãŠæå®ãããæ¢å®ã®æ°å€ç²ŸåºŠã䜿çšãããŸãã
次ã®è¡šã«ãè¿ãããæååã®æžåŒèšå®ãå¶åŸ¡ãã NumberFormatInfo ããããã£ã瀺ããŸãã
| NumberFormatInfo ãããã㣠| 説æ |
|---|---|
| PercentPositivePattern | æ£ã®å€ã®ããŒã»ã³ãèšå·ã®é 眮ãå®çŸ©ããŸãã |
| PercentNegativePattern | è² ã®å€ã®ããŒã»ã³ãèšå·ãšè² ã®èšå·ã®é 眮ãå®çŸ©ããŸãã |
| NegativeSign | æ°å€ãè² ã§ããããšã瀺ãæååãå®çŸ©ããŸãã |
| PercentSymbol | ããŒã»ã³ãèšå·ãå®çŸ©ããŸãã |
| PercentDecimalDigits | ããŒã»ã³ãå€ã®æ¢å®ã® 10 鲿°ãå®çŸ©ããŸãã ãã®å€ã¯ã粟床æå®åã䜿çšããŠãªãŒããŒã©ã€ãã§ããŸãã |
| PercentDecimalSeparator | æŽæ°ãš 10 鲿°ãåºåãæååãå®çŸ©ããŸãã |
| PercentGroupSeparator | æŽæ°ã®ã°ã«ãŒããåºåãæååãå®çŸ©ããŸãã |
| PercentGroupSizes | ã°ã«ãŒãã«è¡šç€ºãããæŽæ°ã®æ¡æ°ãå®çŸ©ããŸãã |
次ã®äŸã§ã¯ãæµ®åå°æ°ç¹å€ãããŒã»ã³ãæžåŒæå®åã§æžåŒèšå®ããŸãã
double number = .2468013;
Console.WriteLine(number.ToString("P", CultureInfo.InvariantCulture));
// Displays 24.68 %
Console.WriteLine(number.ToString("P",
CultureInfo.CreateSpecificCulture("hr-HR")));
// Displays 24,68%
Console.WriteLine(number.ToString("P1", CultureInfo.InvariantCulture));
// Displays 24.7 %
Dim number As Double = .2468013
Console.WriteLine(number.ToString("P", CultureInfo.InvariantCulture))
' Displays 24.68 %
Console.WriteLine(number.ToString("P", _
CultureInfo.CreateSpecificCulture("hr-HR")))
' Displays 24,68%
Console.WriteLine(number.ToString("P1", CultureInfo.InvariantCulture))
' Displays 24.7 %
ã©ãŠã³ã ããªããæžåŒæå®å (R)
ã©ãŠã³ã ããªãã ("R") æžåŒæå®åã¯ãæååã«å€æãããæ°å€ãåãæ°å€ã«è§£æãããããã«ããããšããŸãã ãã®åœ¢åŒã¯ã Halfã Singleã Doubleãããã³ BigInteger ã®åã§ã®ã¿ãµããŒããããŸãã
.NET Framework ããã³ 3.0 ããåã®ããŒãžã§ã³ã® .NET Core ã§ã¯ã"R" æžåŒæå®åã¯ãå Žåã«ãã£ãŠã¯ Double å€ã®ã©ãŠã³ãããªããã«å€±æããŸãã Doubleå€ãšSingleå€ã®äž¡æ¹ã§ã"R" æžåŒæå®åã®ããã©ãŒãã³ã¹ãæ¯èŒçäœããªããŸãã 代ããã«ãå€ã« Double æžåŒæå®åã䜿çšãã"G9" æžåŒæå®åã䜿çšããŠãSingleå€ãæ£åžžã«ã©ãŠã³ãããªããããããšããå§ãããŸãã
ãã®æå®åã䜿çšã㊠BigInteger å€ãæžåŒèšå®ãããŠããå Žåããã®æåå圢åŒã«ã¯ã BigInteger å€ã®ãã¹ãŠã®æå¹æ¡æ°ãå«ãŸããŸãã
æå¹æ¡æ°æå®åã¯å«ããããšãã§ããŸãããç¡èŠãããŸãã ãã®æå®åã䜿çšããå Žåãã©ãŠã³ã ããªããã¯æå¹æ¡æ°ãããåªå ãããŸãã çµææååã¯ãçŸåšã® NumberFormatInfo ãªããžã§ã¯ãã®æžåŒèšå®æ å ±ã®åœ±é¿ãåããŸãã æ¬¡ã®è¡šã«ãçµææååã®æžåŒèšå®ãå¶åŸ¡ãã NumberFormatInfo ããããã£ã瀺ããŸãã
| NumberFormatInfo ãããã㣠| 説æ |
|---|---|
| NegativeSign | æ°å€ãè² ã§ããããšã瀺ãæååãå®çŸ©ããŸãã |
| NumberDecimalSeparator | æŽæ°æ¡ãš 10 鲿°ãåºåãæååãå®çŸ©ããŸãã |
| PositiveSign | ææ°ãæ£ã§ããããšã瀺ãæååãå®çŸ©ããŸãã |
次ã®äŸã§ã¯ãã©ãŠã³ã ããªããæžåŒæå®åã䜿çšã㊠BigInteger å€ãæžåŒèšå®ããŸãã
using System;
using System.Numerics;
public class Example
{
public static void Main()
{
var value = BigInteger.Pow(Int64.MaxValue, 2);
Console.WriteLine(value.ToString("R"));
}
}
// The example displays the following output:
// 85070591730234615847396907784232501249
Imports System.Numerics
Module Example
Public Sub Main()
Dim value = BigInteger.Pow(Int64.MaxValue, 2)
Console.WriteLine(value.ToString("R"))
End Sub
End Module
' The example displays the following output:
' 85070591730234615847396907784232501249
éèŠ
å Žåã«ãã£ãŠã¯ã"R" æšæºã®æ°å€æžåŒæå®æååã§æžåŒèšå®ããã Double å€ãã /platform:x64 ã¹ã€ãããŸã㯠/platform:anycpu ã¹ã€ããã䜿çšããŠã³ã³ãã€ã«ããã64 ããã ã·ã¹ãã ã§å®è¡ãããå Žåãã©ãŠã³ã ããªãããæ£åžžã«è¡ãããŸããã 詳现ã«ã€ããŠã¯ãæ¬¡ã®æ®µèœãåç
§ããŠãã ããã
DoubleãŸãã¯/platform:x64ã¹ã€ããã䜿çšããŠã³ã³ãã€ã«ãã64 ããã ã·ã¹ãã ã§å®è¡ãããšã"R" æšæºã®æ°å€æžåŒæå®æååã§æžåŒèšå®ããã/platform:anycpuå€ãæ£ããã©ãŠã³ãããªããããªããšããåé¡ãåé¿ããã«ã¯ã"G17" æšæºã®æ°å€æžåŒæå®æååã䜿çšããŠDoubleå€ãæžåŒèšå®ã§ããŸãã æ¬¡ã®äŸã§ã¯ã"R" æžåŒæå®æååã䜿çšãã Double å€ãæ£ããã©ãŠã³ãããªããããŸããããŸãã"G17" æžåŒæå®æååã䜿çšããŠå
ã®å€ãæ£åžžã«ã©ãŠã³ãããªããããŸãã
Console.WriteLine("Attempting to round-trip a Double with 'R':");
double initialValue = 0.6822871999174;
string valueString = initialValue.ToString("R",
CultureInfo.InvariantCulture);
double roundTripped = double.Parse(valueString,
CultureInfo.InvariantCulture);
Console.WriteLine($"{initialValue:R} = {roundTripped:R}: {initialValue.Equals(roundTripped)}\n");
Console.WriteLine("Attempting to round-trip a Double with 'G17':");
string valueString17 = initialValue.ToString("G17",
CultureInfo.InvariantCulture);
double roundTripped17 = double.Parse(valueString17,
CultureInfo.InvariantCulture);
Console.WriteLine($"{initialValue:R} = {roundTripped17:R}: {initialValue.Equals(roundTripped17)}\n");
// If compiled to an application that targets anycpu or x64 and run on an x64 system,
// the example displays the following output:
// Attempting to round-trip a Double with 'R':
// .NET Framework:
// 0.6822871999174 = 0.68228719991740006: False
// .NET:
// 0.6822871999174 = 0.6822871999174: True
//
// Attempting to round-trip a Double with 'G17':
// 0.6822871999174 = 0.6822871999174: True
Imports System.Globalization
Module Example
Public Sub Main()
Console.WriteLine("Attempting to round-trip a Double with 'R':")
Dim initialValue As Double = 0.6822871999174
Dim valueString As String = initialValue.ToString("R",
CultureInfo.InvariantCulture)
Dim roundTripped As Double = Double.Parse(valueString,
CultureInfo.InvariantCulture)
Console.WriteLine("{0:R} = {1:R}: {2}",
initialValue, roundTripped, initialValue.Equals(roundTripped))
Console.WriteLine()
Console.WriteLine("Attempting to round-trip a Double with 'G17':")
Dim valueString17 As String = initialValue.ToString("G17",
CultureInfo.InvariantCulture)
Dim roundTripped17 As Double = double.Parse(valueString17,
CultureInfo.InvariantCulture)
Console.WriteLine("{0:R} = {1:R}: {2}",
initialValue, roundTripped17, initialValue.Equals(roundTripped17))
End Sub
End Module
' If compiled to an application that targets anycpu or x64 and run on an x64 system,
' the example displays the following output:
' Attempting to round-trip a Double with 'R':
' .NET Framework:
' 0.6822871999174 = 0.68228719991740006: False
' .NET:
' 0.6822871999174 = 0.6822871999174: True
'
' Attempting to round-trip a Double with 'G17':
' 0.6822871999174 = 0.6822871999174: True
16 鲿°æžåŒæå®å (X)
16 鲿° ("X") æžåŒæå®åã¯ãæ°å€ã 16 鲿°ã®æååã«å€æããŸãã æžåŒæå®åã®å€§æåãšå°æåã¯ã9 ãã倧ãã 16 鲿°ã«å€§æåãšå°æåã®ã©ã¡ãã䜿çšãããã瀺ããŸãã ããšãã°ã"X" ã䜿çšã㊠"ABCDEF" ãçæãã"x" ã䜿çšã㊠"abcdef" ãçæããŸãã ãã®åœ¢åŒã¯ãæŽæ°åã§ã®ã¿ãµããŒããããŸãã
粟床æå®åã¯ãçµæã®æååã«å¿ èŠãªæå°æ¡æ°ã瀺ããŸãã å¿ èŠã«å¿ããŠãæ°å€ãå·Šã«ãŒãã§åã蟌ã¿ã粟床æå®åã«ãã£ãŠæå®ãããæ¡æ°ãçæããŸãã
BigIntegerã®å Žåãæ£ã®å€ã¯åžžã«ãè² ã®å€ãšåºå¥ããããã«å
é ã« 0 ãä»ããŸãã ããã«ãããè§£ææã«å
ã®å€ãžã®åºåã©ãŠã³ã ããªãããä¿èšŒãããŸãã ããšãã°ãæžåŒæå®åFã§å€æ"X1"æ°å€ã¯0FFè² ã®å€ã衚ããŠãããã-1ã
çµææååã¯ãçŸåšã® NumberFormatInfo ãªããžã§ã¯ãã®æžåŒèšå®æ å ±ã®åœ±é¿ãåããŸããã
次ã®äŸã§ã¯ã Int32 å€ã 16 鲿°æžåŒæå®åã§æžåŒèšå®ããŸãã
int value;
value = 0x2045e;
Console.WriteLine(value.ToString("x"));
// Displays 2045e
Console.WriteLine(value.ToString("X"));
// Displays 2045E
Console.WriteLine(value.ToString("X8"));
// Displays 0002045E
value = 123456789;
Console.WriteLine(value.ToString("X"));
// Displays 75BCD15
Console.WriteLine(value.ToString("X2"));
// Displays 75BCD15
Dim value As Integer
value = &h2045e
Console.WriteLine(value.ToString("x"))
' Displays 2045e
Console.WriteLine(value.ToString("X"))
' Displays 2045E
Console.WriteLine(value.ToString("X8"))
' Displays 0002045E
value = 123456789
Console.WriteLine(value.ToString("X"))
' Displays 75BCD15
Console.WriteLine(value.ToString("X2"))
' Displays 75BCD15
泚èš
ãã®ã»ã¯ã·ã§ã³ã«ã¯ãæšæºã®æ°å€æžåŒæå®æååã®äœ¿çšã«é¢ããè¿œå æ å ±ãå«ãŸããŠããŸãã
ã³ã³ãããŒã« ããã«ã®èšå®
ã³ã³ãããŒã« ããã«ã® [ å°åãšèšèªã®ãªãã·ã§ã³] é ç®ã®èšå®ã¯ãæžåŒèšå®æäœã«ãã£ãŠçæãããçµææååã«åœ±é¿ããŸãã ãããã®èšå®ã¯ãçŸåšã®ã«ã«ãã£ã«é¢é£ä»ããããŠãã NumberFormatInfo ãªããžã§ã¯ããåæåããããã«äœ¿çšãããæžåŒèšå®ã®å¶åŸ¡ã«äœ¿çšãããå€ãæäŸãããŸãã ç°ãªãèšå®ã䜿çšããã³ã³ãã¥ãŒã¿ãŒã§ã¯ãç°ãªãçµææååãçæãããŸãã
ããã«ã CultureInfo(String) ã³ã³ã¹ãã©ã¯ã¿ãŒã䜿çšããŠãçŸåšã®ã·ã¹ãã ã«ã«ãã£ãšåãã«ã«ãã£ãè¡šãæ°ãã CultureInfo ãªããžã§ã¯ããã€ã³ã¹ã¿ã³ã¹åããå Žåã¯ãã³ã³ãããŒã« ããã«ã® [å°åãšèšèªã®ãªãã·ã§ã³] é ç®ã«ãã£ãŠç¢ºç«ããããã¹ãŠã®ã«ã¹ã¿ãã€ãºãæ°ãã CultureInfo ãªããžã§ã¯ãã«é©çšãããŸãã CultureInfo(String, Boolean) ã³ã³ã¹ãã©ã¯ã¿ãŒã䜿çšããŠãã·ã¹ãã ã®ã«ã¹ã¿ãã€ãºãåæ ããªãCultureInfo ãªããžã§ã¯ããäœæã§ããŸãã
NumberFormatInfo ããããã£
æžåŒèšå®ã¯ãçŸåšã® NumberFormatInfo ãªããžã§ã¯ãã®ããããã£ã®åœ±é¿ãåããŸããçŸåšã®ã«ã«ãã£ã«ãã£ãŠæé»çã«æäŸãããããæžåŒèšå®ãåŒã³åºãã¡ãœããã® IFormatProvider ãã©ã¡ãŒã¿ãŒã«ãã£ãŠæç€ºçã«æäŸãããŸãã ãã®ãã©ã¡ãŒã¿ãŒã® NumberFormatInfo ãŸã㯠CultureInfo ãªããžã§ã¯ããæå®ããŸãã
泚
æ°å€ã®æžåŒèšå®ã§äœ¿çšããããã¿ãŒã³ãŸãã¯æååã®ã«ã¹ã¿ãã€ãºã«ã€ããŠã¯ã NumberFormatInfo ã¯ã©ã¹ã®ãããã¯ãåç §ããŠãã ããã
æŽæ°åãšæµ®åå°æ°ç¹å
æšæºã®æ°å€æžåŒæå®åã®äžéšã®èª¬æã§ã¯ãæŽæ°åãŸãã¯æµ®åå°æ°ç¹åãåç §ããŸãã æŽæ°ã®æ°å€åã¯ã Byteã SByteã Int16ã Int32ã Int64ã UInt16ã UInt32ã UInt64ãããã³ BigIntegerã§ãã æµ®åå°æ°ç¹æ°å€åã¯ã Decimalã Halfã Singleãããã³ Doubleã§ãã
æµ®åå°æ°ç¹ã®ç¡é倧㚠NaN
æžåŒæå®æååã«é¢ä¿ãªããHalfãSingleããŸãã¯Doubleæµ®åå°æ°ç¹åã®å€ãæ£ã®ç¡é倧ãè² ã®ç¡é倧ããŸãã¯æ°å€ (NaN) ã§ãªãå ŽåãæžåŒèšå®ãããæååã¯ãçŸåšé©çšå¯èœãªPositiveInfinitySymbol ãªããžã§ã¯ãã§æå®ãããŠããããããã®NegativeInfinitySymbolãNaNSymbolããŸãã¯NumberFormatInfoããããã£ã®å€ã§ãã
ã³ãŒãäŸ
次ã®äŸã§ã¯ãen-US ã«ã«ãã£ãšãã¹ãŠã®æšæºã®æ°å€æžåŒæå®åã䜿çšããŠãæŽæ°ãšæµ®åå°æ°ç¹ã®æ°å€ãæžåŒèšå®ããŸãã ãã®äŸã§ã¯ã2 ã€ã®ç¹å®ã®æ°å€å (Double ãš Int32) ã䜿çšããŸãããä»ã®æ°å€åºæ¬å (Byteã SByteã Int16ã Int32ã Int64ã UInt16ã UInt32ã UInt64ã BigIntegerã Decimalã Halfã Single) ã«å¯ŸããŠãåæ§ã®çµæãåŸãããŸãã
// Display string representations of numbers for en-us culture
CultureInfo ci = new CultureInfo("en-us");
// Output floating point values
double floating = 10761.937554;
Console.WriteLine($"C: {floating.ToString("C", ci)}"); // Displays "C: $10,761.94"
Console.WriteLine($"E: {floating.ToString("E03", ci)}"); // Displays "E: 1.076E+004"
Console.WriteLine($"F: {floating.ToString("F04", ci)}"); // Displays "F: 10761.9376"
Console.WriteLine($"G: {floating.ToString("G", ci)}"); // Displays "G: 10761.937554"
Console.WriteLine($"N: {floating.ToString("N03", ci)}"); // Displays "N: 10,761.938"
Console.WriteLine($"P: {(floating/10000).ToString("P02", ci)}"); // Displays "P: 107.62 %"
Console.WriteLine($"R: {floating.ToString("R", ci)}"); // Displays "R: 10761.937554"
Console.WriteLine();
// Output integral values
int integral = 8395;
Console.WriteLine($"C: {integral.ToString("C", ci)}"); // Displays "C: $8,395.00"
Console.WriteLine($"D: {integral.ToString("D6", ci)}"); // Displays "D: 008395"
Console.WriteLine($"E: {integral.ToString("E03", ci)}"); // Displays "E: 8.395E+003"
Console.WriteLine($"F: {integral.ToString("F01", ci)}"); // Displays "F: 8395.0"
Console.WriteLine($"G: {integral.ToString("G", ci)}"); // Displays "G: 8395"
Console.WriteLine($"N: {integral.ToString("N01", ci)}"); // Displays "N: 8,395.0"
Console.WriteLine($"P: {(integral/10000.0).ToString("P02", ci)}"); // Displays "P: 83.95 %"
Console.WriteLine($"X: 0x{integral.ToString("X", ci)}"); // Displays "X: 0x20CB"
Console.WriteLine();
Option Strict On
Imports System.Globalization
Imports System.Threading
Module NumericFormats
Public Sub Main()
' Display string representations of numbers for en-us culture
Dim ci As New CultureInfo("en-us")
' Output floating point values
Dim floating As Double = 10761.937554
Console.WriteLine("C: {0}", _
floating.ToString("C", ci)) ' Displays "C: $10,761.94"
Console.WriteLine("E: {0}", _
floating.ToString("E03", ci)) ' Displays "E: 1.076E+004"
Console.WriteLine("F: {0}", _
floating.ToString("F04", ci)) ' Displays "F: 10761.9376"
Console.WriteLine("G: {0}", _
floating.ToString("G", ci)) ' Displays "G: 10761.937554"
Console.WriteLine("N: {0}", _
floating.ToString("N03", ci)) ' Displays "N: 10,761.938"
Console.WriteLine("P: {0}", _
(floating / 10000).ToString("P02", ci)) ' Displays "P: 107.62 %"
Console.WriteLine("R: {0}", _
floating.ToString("R", ci)) ' Displays "R: 10761.937554"
Console.WriteLine()
' Output integral values
Dim integral As Integer = 8395
Console.WriteLine("C: {0}", _
integral.ToString("C", ci)) ' Displays "C: $8,395.00"
Console.WriteLine("D: {0}", _
integral.ToString("D6")) ' Displays "D: 008395"
Console.WriteLine("E: {0}", _
integral.ToString("E03", ci)) ' Displays "E: 8.395E+003"
Console.WriteLine("F: {0}", _
integral.ToString("F01", ci)) ' Displays "F: 8395.0"
Console.WriteLine("G: {0}", _
integral.ToString("G", ci)) ' Displays "G: 8395"
Console.WriteLine("N: {0}", _
integral.ToString("N01", ci)) ' Displays "N: 8,395.0"
Console.WriteLine("P: {0}", _
(integral / 10000).ToString("P02", ci)) ' Displays "P: 83.95 %"
Console.WriteLine("X: 0x{0}", _
integral.ToString("X", ci)) ' Displays "X: 0x20CB"
Console.WriteLine()
End Sub
End Module
ãã¡ããã芧ãã ãã
- NumberFormatInfo
- ã«ã¹ã¿ã æ°å€æžåŒæå®æåå
- æžåŒèšå®ã®çš®é¡
- æ¹æ³: å é ã«ãŒããä»ããŠæ°å€ãåã蟌ã
- è€åæžåŒ
- ãµã³ãã«: .NET Core WinForms æžåŒèšå®ãŠãŒãã£ãªã㣠(C#)
- ãµã³ãã«: .NET Core WinForms æžåŒèšå®ãŠãŒãã£ãªã㣠(Visual Basic)