Block placement commands don't accept decimals for numerical inputs, as blocks always use the full block for their position. They can have a smaller hitbox or visual size using data tags. In your example, slabs have the available tags of waterlogged (in 1.13+) and type. Waterlogged can be set to true or false, and type can be set to bottom or top, defaulting to bottom. In your example, to get the top half of the slab, you take the command

/fill 25 73 -355 -6 73 -324 petrified_oak_slab

And add the desired data tags to the end in square brackets ([])

/fill 25 73 -355 -6 73 -324 petrified_oak_slab[type:top]

If you wanted more data tags, they would be separated by commas

/fill 25 73 -355 -6 73 -324 petrified_oak_slab[type:top,waterlogged:true]

Data tags can be used to control many other blocks, such as stairs, anvils, chests, logs, vines, and just about everything else that isn't just a simple block. You probably don't want to waterlog your roof, though.


You cannot fill blocks using decimals. You have to use whole numbers. Even though slabs are half the height as regular blocks, they are still filled as if they are the full size. Slabs will be placed on the bottom of whatever y coordinate you type in.

Try: /fill 25 74 -355 -6 74 -324 petrified_oak_slab