電子書籍の厳選無料作品が豊富!

a=123;
print("%06d\n",a);

としたら、「000123」ですよね。

a=1234567;としたらどうなるのですか?
「234567」と出力させたいのですが
わかりません。

A 回答 (4件)

一旦文字列に変換しましょう。

    • good
    • 0

度々すんません、だったら、後ろ6文字をとるロジックを考えてあげます。


まず、aをintegerにします。
aを(10の6乗)で割ります。いったん別のintegerに代入します。
それを(10の6乗)倍します。
aからそれを引きます。

有効桁を生かしたい目的にはいろいろ応用できますので考えてください。
    • good
    • 0

屁理屈をこねると、


print文は値の表現を変えるだけで、意味を変えるものではありません。
123と000123は値として同じですよね。
でも1234567と234567は明らかに違います。
234567で表示させるためには、後ろから6文字分だけを適用するようなロジックにするか、1000000を引く等のロジックをつくるしかないです。

関数の意味を理解してください。
    • good
    • 0

printf("%06d\n",a%1000000);

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!