gcvt(C/C++), valueOf(Java)

[機能]

  浮動小数点を文字列(小数点や符号を含む)へ変換し,NULL 文字( '\0' )を付加し,バッファーに格納します.通常 10 進形式に変換しますが,桁数が収まらない場合,指数形式で作成します.

  Java の場合は,String クラスの static メソッド valueOf を利用します.double,int,long 等を文字列に変換できます.

[形式]
( C/C++ の場合)

	#include <stdlib.h>

	char *gcvt(double value, int digit, char *buffer)
		value : 変換する値
		digit : 格納する有効数字の数
		buffer : 結果の格納場所

( Java の場合: String クラスの static メソッド)

	String valueOf(double value)
	String valueOf(int value)
	String valueOf(long value)
		value : 変換する値
		
[使用例]

  1. ecvt,fcvt,gcvt の比較です(C/C++)
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    	double x = -12.345;
    	char name[20], *c1, *c2, *c3;
    	int dec, sign;
    
    	printf("%f の文字列への変換\n", x);
    	c1 = ecvt(x, 10, &dec, &sign);
    	printf("   文字列(ecvt) %s dec %d sign %d\n", c1, dec, sign);
    
    	c2 = fcvt(x, 10, &dec, &sign);
    	printf("   文字列(fcvt) %s dec %d sign %d\n", c2, dec, sign);
    
    	c3 = gcvt(x, 10, name);
    	printf("   文字列(gcvt) %s name %s\n", c3, name);
    
    	return 0;
    }
    			
    (出力)
    -12.345000 の文字列への変換
       文字列(ecvt) 1234500000 dec 2 sign 1
       文字列(fcvt) 1234500000 dec 2 sign 1
       文字列(gcvt) -12.345 name -12.345
    			
  2. 数字の文字列への変換です(Java)
    import java.io.*;
    
    public class Test {
    
    	public static void main(String args[])
    	{
    		double x = -12.345;
    		int y = 12345;
    		long z = 123456789;
    
    		System.out.println("double " + x + " の文字列への変換結果は " + String.valueOf(x));
    		System.out.println("int " + y + " の文字列への変換結果は " + String.valueOf(y));
    		System.out.println("long " + z + " の文字列への変換結果は " + String.valueOf(z));
    	}
    }
    			
    (出力)
    double -12.345 の文字列への変換結果は -12.345
    int 12345 の文字列への変換結果は 12345
    long 123456789 の文字列への変換結果は 123456789
    			
[参照]

atoi, atol, strtod, strtol, strtoul, ecvt, fcvt, atof

菅沼ホーム 本文目次 演習問題解答例 付録目次 索引