Arduinoで桁数を指定して0埋めする方法
Arduinoで数値を桁数指定して0埋めしたいので方法を考えてみる。
Contents
自前で用意
自前で組んでみる。
// numに数値を、zeroCountに桁数を指定する。
String strPad(int num,int zeroCount){
String str = String(num);
String returnStr = "";
if(zeroCount <= str.length()){
return str;
}
for(int i = 0;i < zeroCount - str.length();i++){
returnStr += '0';
}
return returnStr + str;
}
sprintfを使用する
こちらは標準のsprintfを使用するものです。
こっちが無難かも。
// numに数値を、zeroCountに桁数を指定する。
String strPad2(int num,int zeroCount){
char tmp[256];
char param[5] = {'%','0',(char)(zeroCount+48),'d','\0'};
sprintf(tmp,param,num);
return tmp;
}
動作確認
void setup() {
Serial.begin(9600);
Serial.println(strPad(0,4));
Serial.println(strPad(10,4));
Serial.println(strPad(100,4));
Serial.println(strPad(1000,4));
Serial.println(strPad2(0,4));
Serial.println(strPad2(10,4));
Serial.println(strPad2(100,4));
Serial.println(strPad2(1000,4));
}
String strPad(int num,int zeroCount){
String str = String(num);
String returnStr = "";
if(zeroCount <= str.length()){
return str;
}
for(int i = 0;i < zeroCount - str.length();i++){
returnStr += '0';
}
return returnStr + str;
}
String strPad2(int num,int zeroCount){
char tmp[256];
char param[5] = {'%','0',(char)(zeroCount+48),'d','\0'};
sprintf(tmp,param,num);
return tmp;
}
void loop() {
}
ディスカッション
コメント一覧
まだ、コメントがありません