String类型数字始终保留两位小数

本文介绍了一种使用Java编程语言中的DecimalFormat类来格式化小数输出的方法。通过实例演示了如何将一个带有三位小数的字符串转换为只有两位小数的格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public static void main(String[] args) {
       DecimalFormat format = new DecimalFormat("0.00");
       String abc ="100.456";
       String a = format.format(new BigDecimal(abc));
       System.out.println(a);
}

 

#include "usart.h" #include <string.h> #include <stdio.h> UART_HandleTypeDef huart1; //定义串口类型的结构体 void MX_USART1_UART_Init(void) { __HAL_RCC_USART1_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF7_USART1; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); huart1.Instance = USART1; //使用USART1外设 huart1.Init.BaudRate = 9600;//波特率设置为9600 huart1.Init.WordLength = UART_WORDLENGTH_8B; //字长选择8 起始1+数据6+停止1 huart1.Init.StopBits = UART_STOPBITS_1;//停止,选择1为 huart1.Init.Parity = UART_PARITY_NONE; //奇偶校验,无需奇偶校验 huart1.Init.Mode = UART_MODE_TX_RX;//全双工模式 huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;//硬件流控制,无需硬件流控制 huart1.Init.OverSampling = UART_OVERSAMPLING_16;//过采样模式 ,选择16,减少误码率 huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;//单比特采样,禁用单比特采样 huart1.Init.ClockPrescaler = UART_PRESCALER_DIV1;//定义了 UART 接收器和发送器的时钟分频系数。其作用在于调整内部时钟频率以匹配目标波特率需求 huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;//外设是否启用 HAL_NVIC_SetPriority(USART1_IRQn, 0, 0); HAL_NVIC_EnableIRQ(USART1_IRQn); if (HAL_UART_Init(&huart1) != HAL_OK) { Error_Handler(); } if (HAL_UARTEx_SetTxFifoThreshold(&huart1, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK) { Error_Handler(); } if (HAL_UARTEx_SetRxFifoThreshold(&huart1, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK) { Error_Handler(); } if (HAL_UARTEx_DisableFifoMode(&huart1) != HAL_OK) { Error_Handler(); } } // 发送字符串 void UART_SendString(UART_HandleTypeDef *huart, const char *str) { HAL_UART_Transmit(huart, (uint8_t*)str, strlen(str), HAL_MAX_DELAY); } // 发送数字 void UART_SendNumber(UART_HandleTypeDef *huart, float num) { char buffer[12]; // 足够存储32整数 sprintf(buffer, "%.2f", num); // 保留两位小数 UART_SendString(huart, buffer); }
07-05
#include "usart.h" #include <string.h> #include <stdio.h> UART_HandleTypeDef huart1; //定义串口类型的结构体 void MX_USART1_UART_Init(void) { __HAL_RCC_USART1_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF7_USART1; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); HAL_NVIC_SetPriority(USART1_IRQn, 0, 0); HAL_NVIC_EnableIRQ(USART1_IRQn); huart1.Instance = USART1; //使用USART1外设 huart1.Init.BaudRate = 9600;//波特率设置为9600 huart1.Init.WordLength = UART_WORDLENGTH_8B; //字长选择8 起始1+数据6+停止1 huart1.Init.StopBits = UART_STOPBITS_1;//停止,选择1为 huart1.Init.Parity = UART_PARITY_NONE; //奇偶校验,无需奇偶校验 huart1.Init.Mode = UART_MODE_TX_RX;//全双工模式 huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;//硬件流控制,无需硬件流控制 huart1.Init.OverSampling = UART_OVERSAMPLING_16;//过采样模式 ,选择16,减少误码率 huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;//单比特采样,禁用单比特采样 huart1.Init.ClockPrescaler = UART_PRESCALER_DIV1;//定义了 UART 接收器和发送器的时钟分频系数。其作用在于调整内部时钟频率以匹配目标波特率需求 huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;//外设是否启用 HAL_NVIC_SetPriority(USART1_IRQn, 0, 0); HAL_NVIC_EnableIRQ(USART1_IRQn); if (HAL_UART_Init(&huart1) != HAL_OK) { Error_Handler(); } if (HAL_UARTEx_SetTxFifoThreshold(&huart1, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK) { Error_Handler(); } if (HAL_UARTEx_SetRxFifoThreshold(&huart1, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK) { Error_Handler(); } if (HAL_UARTEx_DisableFifoMode(&huart1) != HAL_OK) { Error_Handler(); } } // 发送字符串 void UART_SendString(UART_HandleTypeDef *huart, const char *str) { HAL_UART_Transmit(huart, (uint8_t*)str, strlen(str), HAL_MAX_DELAY); } // 发送数字(整数) void UART_SendNumber(UART_HandleTypeDef *huart, float num) { char buffer[12]; // 足够存储32整数 sprintf(buffer, "%.2f", num); // 保留两位小数 UART_SendString(huart, buffer); } 为什么没法发送数字
07-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值