02-数字をきれいに出力しよう †フォーマットを指定して数値を出力する方法を紹介します。 Java編 †CやFortranでは、小数の表示桁数を指定できることはよく知られています。 "0"は絶対に表示され、"#"は0だと表示されません。 ★ソース import java.text.DecimalFormat;
public class NumberTest{
public static void main(String args[]){
//フォーマットを定義
//小数2桁まで
DecimalFormat df1 = new DecimalFormat("0.00");
//小数1桁のパーセント
DecimalFormat df2 = new DecimalFormat("#.#%");
//指数
DecimalFormat df3 = new DecimalFormat("0.00E0");
//\表示(カンマあり)
DecimalFormat df4 = new DecimalFormat("'\\ '#,###");
//ちっちゃい数
double x = 1.0/6.0;
System.out.println("1.0 / 6.0 =");
System.out.println(" なし:"+x);
System.out.println(" (0.00):"+df1.format(x));
System.out.println(" (#.#%):"+df2.format(x));
System.out.println(" (0.00E0):"+df3.format(x));
System.out.println();
//おっきい数
int y = 1234*5678;
System.out.println("1234 * 5678 =");
System.out.println(" なし:"+y);
System.out.println("('\\ '#,###):"+df4.format(y));
System.out.println(" (0.00E0):"+df3.format(y));
}
}
★実行結果 E:\Java\test>java NumberTest
1.0 / 6.0 =
なし:0.16666666666666666
(0.00):0.17
(#.#%):16.7%
(0.00E0):1.67E-1
1234 * 5678 =
なし:7006652
('\ '#,###):\ 7,006,652
(0.00E0):7.01E6
PHP編 †そこらへんの言語をかき集めた言語(!)だけあって、 ★ソース <?php
//フォーマット文字列
$f1 = '%01.2f'; //小数2桁
$f2 = '%.3e'; //指数
//ちっちゃい数
$x = 1.0/6.0;
echo('1.0/6.0 = <br>');
echo('なし : '.$x.'<br>');
echo($f1.' : '.sprintf($f1, $x).'<br>');
echo($f2.' : '.sprintf($f2, $x).'<br>');
echo('<br>');
//おっきい数
$y = 1234*5678;
echo('1234 * 5678 =<br>');
echo('なし : '.$y.'<br>');
echo('number_format : '.number_format($y).'<br>');
echo($f2.' : '.sprintf($f2, $y).'<br>');
?>
★実行結果 1.0/6.0 = なし : 0.166666666667 %01.2f : 0.17 %.3e : 1.67e-1 1234 * 5678 = なし : 7006652 number_format : 7,006,652 %.3e : 7.01e+6 .NET編 †日付と同じくToString?で行けます。 ★ソース <html>
<script language="C#" runat="server">
private void Page_Load(object sender, System.EventArgs e){
//ちっちゃい数
double x = 1.0/6.0;
Label1.Text = x.ToString();
Label2.Text = x.ToString("0.00");
Label3.Text = x.ToString("#.#%");
Label4.Text = x.ToString("0.00E0");
//おっきい数
int y = 1234*5678;
Label5.Text = y.ToString();
Label6.Text = y.ToString("#,###");
Label7.Text = y.ToString("0.00E0");
}
</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>数値フォーマット</title>
</head>
<body>
<table border="1">
<tr><td>なし</td><td><asp:Label id="Label1" runat="server" /></td></tr>
<tr><td>0.00</td><td><asp:Label id="Label2" runat="server" /></td></tr>
<tr><td>#.#%</td><td><asp:Label id="Label3" runat="server" /></td></tr>
<tr><td>0.00E0</td><td><asp:Label id="Label4" runat="server" /></td></tr>
</table><br />
<table border="1">
<tr><td>なし</td><td><asp:Label id="Label5" runat="server" /></td></tr>
<tr><td>#,###</td><td><asp:Label id="Label6" runat="server" /></td></tr>
<tr><td>0.00E0</td><td><asp:Label id="Label7" runat="server" /></td></tr>
</table>
</body>
</html>
★実行結果
感想・質問等どうぞ † |